package com.xinzhi.model;

import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author laohan
 * @since 2024-01-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="Users对象", description="用户表")
public class Users implements Serializable {

private static final long serialVersionUID=1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private String uuid;

    @ApiModelProperty(value = "昵称")
    private String name;

    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @ApiModelProperty(value = "编号")
    private String number;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "性别")
    private String gender;

    @ApiModelProperty(value = "头像")
    private String headimg;

    @ApiModelProperty(value = "email")
    private String email;

    @ApiModelProperty(value = "生日")
    private Date birthday;

    @ApiModelProperty(value = "md5后的密码")
    private String password;

    @ApiModelProperty(value = "省份")
    private String provice;

    @ApiModelProperty(value = "城市")
    private String city;

    @ApiModelProperty(value = "地区")
    private String area;

    @ApiModelProperty(value = "会员等级， 默认为1为普通会员")
    private Integer level;

    @ApiModelProperty(value = "VIP类型, 一般付费会员")
    private Integer vipType;

    @ApiModelProperty(value = "VIP编号")
    private String vipNumber;

    @ApiModelProperty(value = "VIP状态 0为未开通 1为已开通  2为过期")
    private Boolean vipStatus;

    @ApiModelProperty(value = "VIP开通时间")
    private Date vipStartAt;

    @ApiModelProperty(value = "VIP到期时间")
    private Date vipEndAt;

    @ApiModelProperty(value = "是否拥有邀请其它用户的权限")
    private Boolean isInviter;

    @ApiModelProperty(value = "邀请人id")
    private Integer inviterId;

    @ApiModelProperty(value = "邀请层级，0为第1层")
    private Integer inviterIndex;

    @ApiModelProperty(value = "邀请人时间")
    private Date invitedAt;

    @ApiModelProperty(value = "签名")
    private String signature;

    @ApiModelProperty(value = "描述")
    private String description;

    @ApiModelProperty(value = "标签")
    private String tags;

    @ApiModelProperty(value = "最后活跃时间")
    private Date lastActiveAt;

    @ApiModelProperty(value = "拉黑时间")
    private Date blockedAt;

    @ApiModelProperty(value = "1为正常 0为blocked")
    private Integer status;

    @ApiModelProperty(value = "1为普通用户   2为管理员用户  3为虚拟用户（管理员后台创建）")
    private Integer type;

    @ApiModelProperty(value = "微信名")
    private String wechat;

    @ApiModelProperty(value = "备注")
    private String remark;

    private String options;

    private Date deletedAt;

    private Date createdAt;

    private Date updatedAt;

    @ApiModelProperty(value = "设备标记id")
    private Integer deviceId;

    @ApiModelProperty(value = "标记时间")
    private Date markedAt;

    @ApiModelProperty(value = "最顶层邀请用户的id")
    private Integer rootInviterId;

    @ApiModelProperty(value = "上上级推广者的id")
    private Integer indirectInviterId;

    @ApiModelProperty(value = "消费总人民币金额")
    private Integer paidMoneyTotal;

    @ApiModelProperty(value = "消费总积分金额")
    private Integer paidScoreTotal;

    @ApiModelProperty(value = "上级人民币佣金")
    private Integer firstMoneyBrokerage;

    @ApiModelProperty(value = "上级积分佣金")
    private Integer firstScoreBrokerage;

    @ApiModelProperty(value = "上上级人民币佣金")
    private Integer secondMoneyBrokerage;

    @ApiModelProperty(value = "上上级积分佣金")
    private Integer secondScoreBrokerage;

    @ApiModelProperty(value = "apple_id")
    private String appleId;

    @ApiModelProperty(value = "邀请序号")
    private Integer inviteTotal;

    @ApiModelProperty(value = "邀请奖励发放情况,0为未发放 1为已处理 2为无奖励")
    private Integer inviteRewardStatus;

    @ApiModelProperty(value = "直接下级用户数")
    private Integer directInviteesCount;

    @ApiModelProperty(value = "间接下级用户数")
    private Integer indirectInviteesCount;

    @ApiModelProperty(value = "待结算佣金")
    private Integer pendingMoneyBrokerage;

    @ApiModelProperty(value = "待结算佣金")
    private Integer pendingScoreBrokerage;

    @ApiModelProperty(value = "已结算佣金")
    private Integer completedMoneyBrokerage;

    @ApiModelProperty(value = "已结算佣金")
    private Integer completedScoreBrokerage;

    @ApiModelProperty(value = "分销用户级别")
    private Integer agentLevelIndex;

    @ApiModelProperty(value = "分销状态：1为启用中 0为已禁用")
    private Integer agentStatus;

    @ApiModelProperty(value = "邀请节点类型")
    private String inviteNodeType;

    @ApiModelProperty(value = "邀请节点类型uuid")
    private String inviteNodeUuid;

    @ApiModelProperty(value = "邀请节点类型id")
    private Integer inviteNodeId;

    @ApiModelProperty(value = "欧气值")
    private Integer luckyScore;

    @ApiModelProperty(value = "申请注销的时间")
    private Date requireDeleteAt;

    @ApiModelProperty(value = "邀请码，最长10位")
    private String inviteCode;


}
